A data processing system is typically controlled by an operating system ("OS"). An OS is software that controls the execution of programs and provides services such as resource allocation, scheduling, input/output control and data management. There are many different types of OSs, including AIX, DOS, and OS/2.
Each type of OS has its own components for directing and managing resources in the data processing system. For example, AIX, DOS, and OS/2 each support character mode applications. Although each OS supports the same character mode features and screen attributes, each OS has a different internal representation of the screen content.
Likewise, each OS has an event queue for accepting input to the data processing system from sources such as a keyboard or mouse. Each OS provides some form of keyboard translation support and varying support for generic input event processing. However, each OS implements its queue and other input invent processing in a different manner.
In prior art data processing systems, the differences between various OSs were not a problem. Each data processing system only used a single OS, and there was no need to reconcile the differences among them.
However, modern data processing systems can simultaneously support multiple OSs. For example, a data processing system using a microkernel based OS can support various OS "personalities." Each personality is a separate full-fledged version of an OS such as AIX, DOS, or OS/2. Thus, multiple OSs can coexist on a single data processing system and the microkemel OS manages their coexistence.
Due to the differences among the OS personalities, a program in one personality has difficulty accessing resources in another. Specifically, a program attempting to read the contents of a character mode window in a different personality must know how to interpret that personality's internal character window structure. For example, IBM's SCREEN READER program assists visually-impaired persons by speaking the contents of a character mode window. SCREEN READER must have separate program components to read the contents of OS/2, DOS, and AIX character windows. Each component must be programmed separately and increases the size and complexity of SCREEN READER.
A similar problem exists with respect to program input. Each input source, such as a mouse, must have a device driver capable of translating its input into each personality's queue. Implementing this capability adds size and complexity to the device driver.
Thus, there is a need in the art for personality neutral resources that can be accessed by each personality in the data processing system.